// 字符串加密
const crypto = require("crypto")

const Key = "48526154874dasdf" // 加密的key
const Secret = "yuezhan19980115Z" // 密钥

// 加密的方法
const encrypto = (data) => {
    /**
     * @key 加密的key
     * @iv  密钥
     * @data 源数据
     * @aes-128-cbc 加密的算法
     */
    let dep = crypto.createCipheriv("aes-128-cbc", Key, Secret)
    /**
     * @binary 加密为二进制
     * @hex 按照十六进制展示
     * @final 表示已完成
     */
    return dep.update(data, "binary", "hex") + dep.final("hex")
}
// 解密的方法
const decrypto = (crypted) => {
    /**
     * @key 加密的key
     * @iv 密钥
     * @crypted 通过encrypto()方法加密后的值
    */
    // 将加密结果转化为Buffer格式,再转化为二进制
    crypted = Buffer.from(crypted, "hex").toString("binary")

    let dep = crypto.createDecipheriv("aes-128-cbc", Key, Secret)
    // 将解密的结果以utf8展示
    return dep.update(crypted, "binary", "utf8") + dep.final("utf8")
}

module.exports = {
    encrypto,
    decrypto
}